home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 1 / PC Actual CD 01.iso / f1 / mdisk25.arj / MDRIVE.ASC < prev    next >
Encoding:
Text File  |  1994-09-29  |  3.5 KB  |  97 lines

  1. 7. MDRIVE: MαDULO DE MANEJO DE DISQUETES
  2.  
  3. Este módulo ha sido diseñado mediante la programación orientada
  4. a objetos y realiza las funciones de análisis de unidades de
  5. disquete, escritura, lectura y formato de pistas y cambio de
  6. parámetros.
  7.  
  8. El objeto fundamental de este módulo es Tdrive, objeto en el
  9. que están todos los métodos y variables necesarios para operar
  10. con disquetes.
  11.  
  12.      
  13. En el objeto mencionado por una parte tenemos los datos del
  14. disquete y por otra los métodos de acceso al disquete, dentro de
  15. estos últimos tenemos :
  16.  
  17.       Constructor Init (Unidad:Byte); 
  18.      Inicializa el objeto y analiza el disquete
  19.      identificado con el número de unidad lógica Unidad.
  20.      Function Actualizar :word; 
  21.      Actualiza los datos del  disquete introducido en la
  22.      unidad lógica actual.
  23.      Function Leesector;  
  24.      Lee un sector del disquete.
  25.      Function Leepista; 
  26.      Lee una pista del disquete.
  27.  
  28. El contenido del sector se almacena en Disco.sector y el
  29. contenido de la pista en Disco.pista. 
  30. Las funciones de manejo de sectores necesitan tres parámetros,
  31. la cara del disquete (0 o 1), el número de pista donde esta el
  32. sector (40,80) y el número de sector que queremos leer o
  33. escribir.
  34.      Function Grabapista; 
  35.      Graba el contenido de Disco.pista en una pista física
  36.      del disquete actual.
  37.      Function Verificapista; 
  38.      Verifica una pista determinada.
  39.      Function Format; 
  40.      Da formato a una pista, antes de realizar ningún
  41.      formato hay que definir el tipo de medio adecuado para
  42.      el formato de la unidad por medio del método
  43.      definemedio.
  44. Las funciones de pistas necesitan  dos parámetros: La cara del
  45. disquete (0 o 1) y el número de pista (40,80).
  46.  
  47.      Procedure Reinicia_Unidad; 
  48.      Se encarga de reiniciar la unidad actual en caso de
  49.      que haya ocurrido un error o al efectuar el análisis
  50.      de un disquete.
  51.  
  52.  
  53.  
  54.  
  55.      Function Buscar_tipo_unidad;
  56.      Devuelve el código de la unidad actual, los códigos
  57.      posibles son: 
  58.  
  59.      Tipo                Código
  60.      51/4 320/360 Kb     01h
  61.      51/4 1200 Kb        02h
  62.      31/2   720 Kb       03h
  63.      31/2  1440 Kb       04h
  64.      31/2  2880 Kb       05h
  65.  
  66.  
  67.      El último de unidades de Extra densidad ( 31/2 2880 Kb
  68. código 05h) hay que suponerlo porque es reciente su
  69. implementación y puede no estar estandarizado. Todos los
  70. números de la tabla que finalizan con 'h' son en
  71. formato hexadecimal.
  72.  
  73.     Function Leer_arranque;
  74.      Lee el sector de arranque del disquete y lo coloca en
  75.      la matriz de bytes arranque para su posterior
  76.      procesamiento por el método Actualizar.
  77.     Destructor done;virtual;
  78.      Reinicializa la unidad de disquete y finaliza la
  79.      gestión de los disquetes.
  80.  
  81.     Function Calcula_Capacidad:byte;
  82.      Se sirve de la función del DOS A.P.I 36h para
  83.      averiguar parte de los parámetros lógicos del disquete
  84.      introducido.
  85.  
  86. Además de estas funciones hay dos que toman como base las
  87. interrupciones Int 25h e Int 26h del DOS para acceder a los
  88. disquetes mediante sectores lógicos en vez de acceder por medio
  89. de sectores físicos. Su implementación requiere ensamblador
  90. porque una llamada directa cuelga el ordenador, para que esto no
  91. ocurra se introduce después de la llamada la instrucción 'popf'
  92. que coloca los flags en el stack, esto es requerido para el
  93. correcto funcionamiento de esta función.
  94.  
  95. El procedimiento de funcionamiento es el normal en estos casos,
  96. inicializar el disquete por medio de Init, efectuar las acciones
  97. necesarias y finalizar su funcionamiento con Done.